The traditional functional-oriented approach to programming has largely been superseded by the object-oriented programming approach. With functional-oriented programming, code is organized around actions and written based primarily on logic. With object-oriented programming, code is organized around “objects” and written responsive primarily to the underlying data.
Object-oriented programming provides many conceptual advances and code-related benefits such as reusability, adaptability, modularity, and so forth. These benefits arise, at least partly, from the fundamental tenets of object-oriented programming and the principles that flow therefrom. For example, object-oriented programming usually adheres to encapsulation, inheritance, and polymorphism.
Particularly because of polymorphism, object-oriented programming typically results in complex interrelationships between and among different objects. These interrelationships are established and/or utilized when the object-oriented programming is being executed. In a runtime environment, predecessor and successor linkages from each object to one or more other objects are maintained, manipulated, utilized, and so forth.
Such complex interrelationships of objects as represented partially by predecessor and successor linkages form non-linear relationships that are referred to as graphs of objects. Although utilizing these graphs of objects facilitates adaptability, modularity, and other organizational and operational flexibilities, they also tend to increase the requisite memory and processing bandwidth during runtime.
Furthermore, when a multi-dimensional graph of objects is to be transmitted from an originating entity to a destination entity, serialization is employed. At the originating entity, the graph of objects is serialized and then transmitted in serialized form to the destination entity. At the destination entity, the serialized form is received and then deserialized into another graph of objects with the accompanying non-linear relationships. Unfortunately, communicating the serialized form from originating entity to destination entity is bandwidth intensive.
Accordingly, there is a need for a serialization of objects paradigm that reduces bandwidth demands.